Appendix E Emacs 24 Antinews
For those users who live backwards in time, here is
information about downgrading to Emacs version 24.5. We hope you
will enjoy the greater simplicity that results from the absence
of many Emacs 25.1 features.
- Support for Cairo drawing has been removed. On GNU and Unix
systems, you now have only one drawing engine—the
venerable X Window system. No need to procrastinate on the
dilemma whether you do or don’t want the new shiny Cairo
thing. Hail, simplicity!
- Emacs still works on SGI IRIX systems. If you live
backwards in time, this is actually a bonus, as IRIX systems
will become more and more popular as you move farther back in
time.
- Support for dynamically loaded modules has been removed.
You get to use only the trusted Emacs codebase, with no
additions. Those external modules written by some J.R. Hacker
cannot be trusted anyway. Good riddance!
- We have greatly simplified the Emacs features which access
the network by removing the Network Security Manager. No more
annoying prompts about trusting this or that site or
page—you asked for it, you get it, no questions asked!
You, the user, are now in charge of any security issues related
to sites whose certificates expired or didn’t exist in
the first place. Giving the user the utmost freedom was and
always will be the most important goal of Emacs development. We
keep that goal even as we develop Emacs back in time.
- We made the output of C-h l much simpler and
easier to grasp by removing the names of commands run by the
recorded keystrokes. True Emacs lovers know their bindings by
heart anyway, so why waste precious screen estate on that which
is well known?
- Selection- and clipboard-related commands and variables got
their historical names back. It’s now the definitive
x-select-enable-clipboard again instead of the
vague select-enable-clipboard, and all those
gui-select-text,
gui-get-primary-selection, etc. got their
x-* names back. (What’s a “GUI”,
anyway?) The only true window system with selections is the X
Window system, so we stopped pretending that other platforms
have anything similar to that. You now know when you invoke a
command that accesses X.
- Passwords are no longer hidden when typed in
-batch mode. It was a misfeature to have it not
shown in the first place: who can type without seeing what they
type? We couldn’t convince the users of GUI sessions to
give up hiding the password, so we at least made it visible in
batch mode, which is something every veteran Emacs user uses
all the time. Stay tuned for un-hiding the password in GUI
sessions as well as we downgrade progressively to previous
Emacs versions.
- The nuisance with Unicode characters popping up all over
the place has been amply dealt with. We’ve removed
C-x 8 shorthands for characters such as
‘, ’,
“, â€, €,
≤, and many others; as a nice benefit,
this removes many useless entries at the beginning of the
C-h b output. The
electric-quote-mode
has been deleted, so there’s only the one true quoting
method now—using the plain-ASCII
quote characters. And if that’s not enough, the doc
strings and other messages show text quoted `like
this' as they were written, instead of arbitrarily
replacing them with Unicode “curved quote”
characters ‘like
this’. The
text-quoting-style variable becomes therefore
unneeded and was removed. As result, text produced by Emacs
can be sent to those venerable teletypes again, yeah!
For the same reasons, the character classes
[:alpha:] and [:alnum:] again match
any word-constituent character, and [:graph:]
and [:print:] match every multibyte character.
Confusing use of Unicode character properties is gone.
- I-search and query-replace no longer try to confuse you by
using the “character-folding” magic. They will no
longer find any characters you didn’t actually type, like
find â“ when you actually typed
a. Users who want to find some fancy character will
have to type it explicitly.
- The desktop.el package no longer records
window and frame configuration, and doesn’t attempt to
restore them. You now have back your freedom of re-arranging
your windows and frames anew each time you restore a session.
This made the new backward-incompatible format of the
.emacs.desktop file unnecessary, so the format was
reverted back to what it was before Emacs 25. You can now again
use the desktop file with all the previous versions of
Emacs.
- We have reworked the Prettify Symbols mode to support only
the default
prettify-symbols-compose-predicate. No
need to consider whether your major or minor mode needs its own
prettifications; just use what came with Emacs. We also removed
the prettify-symbols-unprettify-at-point option:
once prettified, always prettified! These changes make the
Prettify Symbols mode quite a lot simpler and easier to
use.
- Support for nifty new features of xterm, such as access to
the X selection and the clipboard, the “bracketed paste
mode”, and other advanced capabilities has been removed.
When you kill text in an xterm Emacs session, that text is only
saved in the Emacs kill ring, without letting other
applications have any way of accessing it. An xterm is just a
text terminal, nothing more, nothing less. There should be no
feature we support on xterm that isn’t supported on bare
console terminals. For the same reasons, support for
mouse-tracking on xterm was removed. We will continue this line
of simplifications as we downgrade to previous versions of
Emacs; stay tuned.
- Various features in package.el have been
simplified. The “external” package status is no
longer available. A package present on multiple archives will
now be listed as many times as it is found: we don’t
believe in concealing any information from the users. This and
other similar simplifications made
package-menu-toggle-hiding unnecessary, since
there’s nothing to unhide now.
- The UP and
DOWN keys in the minibuffer
have been simplified to move by history items. No need to
wonder whether you have moved to the next/previous item or to
another line within the same item. Well-written commands
shouldn’t allow too long history entries anyway; be sure
to report any that do as bugs, so that we could fix them in
past versions of Emacs.
- The VC mode was simplified by removing the support for
“push” commands. Moving back in time means you will
have less and less need to use modern version control systems
such as Git, Bazaar, and Mercurial, so the necessity of using
“push” commands will gradually disappear. We
removed it from Emacs in advance, so that you won’t need
to un-learn it when this command disappears, as it should.
- The support for full C/C++ expressions in macros has been
removed from Hide-Ifdef mode. It now supports only the basic
literal macros. As result, the user interface was simplified,
and a number of useless commands have been removed from
Hide-Ifdef mode. Further simplifications were made possible by
removing support for some fancy new preprocessor directives,
such as
#if defined, #elif, etc.
- We have reverted to Etags for looking up definitions of
functions, variables, etc. Commands such as M-. use
tags tables, as they always have. This allowed the removal of
the entire xref.el package and its many metastases
in the other Emacs packages and commands, significantly
simplifying those. No more complexities with the various
“backends” that provide incoherent behavior that is
hard to explain and remember; either the symbol is in TAGS or
it isn’t. No more new user interfaces we never before saw
in Emacs, either; if you want the next definition for the
symbol you typed, just invoke C-u M-.—what
could be simpler? As a nice side effect, you get to use your
beloved
tags-loop-continue and
pop-tag-mark commands and their memorable
bindings. The package.el package has been removed
for similar reasons.
(/ n) once again yields just
n. Emacs Lisp is not Common Lisp, so compatibility
with CL just complicates Emacs here.
- The functions
filepos-to-bufferpos and
bufferpos-to-filepos have been removed. Code that
needs to find a file position by a buffer position or vice
versa should adapt by reading the file with no conversions and
counting bytes while comparing text. How hard can that be?
- We saw no need for the
make-process primitive,
so we removed it. The start-process primitive
provides all the functionality one needs, so adding more APIs
just confuses users.
- The functions
bidi-find-overridden-directionality and
buffer-substring-with-bidi-context were removed,
in preparation for removing the whole bidi support when
downgrading to Emacs 23.
- Horizontal scroll bars are no longer supported. Enlarge
your windows and frames instead, or use
truncate-lines and the automatic horizontal
scrolling of text that Emacs had since time immemorial.
- Emacs is again counting the height of a frame’s menu
and its tool bar in the frame’s text height calculations.
This makes Emacs invocation on different platforms and with
different toolkits less predictable when frame geometry
parameters are given on the Emacs command line, thus making
Emacs more adventurous and less boring to use.
- The
etags program no longer supports Ruby and
Go languages. You won’t need that as you progressively
travel back in time towards the time before these languages
were invented. We removed support for them in anticipation for
that time.
- To keep up with decreasing computer memory capacity and
disk space, many other functions and files have been eliminated
in Emacs 24.5.